package cn.topevery.garden.entity.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.topevery.garden.entity.po.FacilitiesFile;
import hw.topevery.framework.dto.PointDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 *  视图
 *
 * @author code-generate
 * @date 2021-08-06
 */
@Data
@ApiModel(value = "Facilities 视图", description = " 视图")
public class FacilitiesVO implements Serializable{
    /**
     * 自增id
     */
    private Integer id;

        /**
     * 设施编号
     */
    @ApiModelProperty(value = "设施编号")
    @Excel(name = "设施编号", orderNum = "0")
    private String code;

    /**
     * 设施名称
     */
    @ApiModelProperty(value = "设施名称")
    @NotBlank(message = "设施名称不能为空")
    @Excel(name = "设施名称", orderNum = "0")
    private String name;

    /**
     * 设施名称简称
     */
    @ApiModelProperty(value = "设施名称简称")
    @Excel(name = "设施名称简称", orderNum = "0")
    private String nameShort;

    /**
     * 所属公园Id  t_park.c_id
     */
    @ApiModelProperty(value = "所属公园Id  t_park.c_id")
    @Excel(name = "所属公园Id  t_park.c_id", orderNum = "0")
    private Integer parkId;

    /**
     * 所属公园
     */
    @ApiModelProperty(value = "所属公园")
    @Excel(name = "所属公园", orderNum = "0")
    private String parkName;

    /**
     * 片区Id t_extent.c_id
     */
    @ApiModelProperty(value = "片区Id t_extent.c_id")
    @Excel(name = "片区Id t_extent.c_id", orderNum = "0")
    private Integer extentId;

    /**
     * 片区名称
     */
    @ApiModelProperty(value = "所属片区")
    @Excel(name = "所属片区", orderNum = "0")
    private String extentName;

    /**
     * 设施类别Id  t_facilities_class.c_id
     */
    @ApiModelProperty(value = "设施类别Id  t_facilities_class.c_id")
    @Excel(name = "设施类别Id  t_facilities_class.c_id", orderNum = "0")
    private String typeId;

    /**
     * 设施类别
     */
    @ApiModelProperty(value = "设施类别")
    @Excel(name = "设施类别", orderNum = "0")
    private String typeName;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    @Excel(name = "单位", orderNum = "0")
    private String unit;

    /**
     * 材质
     */
    @ApiModelProperty(value = "材质")
    @Excel(name = "材质", orderNum = "0")
    private String material;

//    /**
//     * 范围 空间数据
//     */
//    @ApiModelProperty(value = "空间数据")
//    @JSONField(serializeUsing = GeometrySerializer.class, deserializeUsing = GeometrySerializer.class)
//    public Geometry geom;

    /**
     * 坐标 wgs84 y
     */
    @ApiModelProperty(value = "坐标 wgs84 y")
    @Excel(name = "坐标 wgs84 y", orderNum = "0")
    private Double latWgs;

    /**
     * 坐标大地2000X
     */
    @ApiModelProperty(value = "坐标大地2000X")
    @Excel(name = "坐标大地2000X", orderNum = "0")
    private Double lng2000;

    /**
     * 位置描述
     */
    @ApiModelProperty(value = "位置描述")
    @Excel(name = "位置描述", orderNum = "0")
    private String address;

    /**
     * 设施状态（1 正常、2 损坏、3 停用）
     */
    @ApiModelProperty(value = "设施状态（1 正常、2 损坏、3 停用）")
    @Excel(name = "状态", orderNum = "0", replace = {"正常_1","损坏_2","停用_3"})
    private Integer status;

    /**
     * 设施说明
     */
    @ApiModelProperty(value = "设施说明")
    @Excel(name = "设施说明", orderNum = "0")
    private String desc;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @Excel(name = "创建时间", orderNum = "0")
    private LocalDateTime dbCreateDate;

    /**
     * 创建人ID  t_sys_user.c_id
     */
    @ApiModelProperty(value = "创建人ID  t_sys_user.c_id")
    @Excel(name = "创建人ID  t_sys_user.c_id", orderNum = "0")
    private Integer dbCreateId;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @Excel(name = "更新时间", orderNum = "0")
    private LocalDateTime dbLastUpdateDate;

    /**
     * 更新人员ID t_sys_user.c_id
     */
    @ApiModelProperty(value = "更新人员ID t_sys_user.c_id")
    @Excel(name = "更新人员ID t_sys_user.c_id", orderNum = "0")
    private Integer dbLastUpdateId;

    @ApiModelProperty(value = "附件列表")
    private List<FacilitiesFile> fileList;

    @ApiModelProperty(value = "空间数据类型")
    private Integer geomType;

    @ApiModelProperty(value = "范围点信息")
    public List<List<PointDto>> mapRangesPoints;

    @ApiModelProperty("数据校验是否通过")
    private Boolean isPass;
}
